In the field of microprocessors and microcontrollers, many types of software and hardware development tools have been developed to deliver full access to the power of the architectures of the microprocessors and microcontrollers. The prior microprocessor and microcontroller development tools typically include prior in-circuit emulators, each being dedicated for a family of microprocessors or microcontrollers.
A prior in-circuit emulator typically gives users symbolic access to the internal states of the microprocessor or microcontroller component being emulated. A prior in-circuit emulator precisely matches the electrical and timing characteristics of the microprocessor or microcontroller component being emulated.
In order to perform an in-circuit emulation operation on a prior microprocessor or microcontroller component, the component is removed from the system and a prior dedicated in-circuit emulator for that particular component is connected in the system in the same manner as the component had been before disconnected with the system. This is typically done by having a socket connecting the component to a PCB of the system. During the in-circuit emulation, the component is removed from the socket and an adapter of the prior emulator is directly plugged into the socket, thus connecting the emulator to the circuitry of the system. The socket can be surface mounted to the PCB. The adapter is typically designed to include the same number of pins as that of the component. In addition, the pin formation of the adapter is the same as that of the component.
Disadvantages are, however, associated with this arrangement. One disadvantage associated is that different types of microprocessor or microcontroller components require different types of sockets. This is due to the fact that different types of components have different pin numbers, functions, and formations. As the number of the types of components increases, the number of the types of sockets increases accordingly.
Additionally, the sockets add cost to the printed circuit board and require additional space on the printed circuit board. Also, as the size of the components and therefore pin spacing shrinks, the cost of reliable sockets increases dramatically.
One prior approach to solving these problems is to eliminate the use of the sockets. This is done by mounting a prior microprocessor or microcontroller component directly to the printed circuit board. During the emulation operation, the component is not physically removed from the PCB, but rather electrically disconnected (i.e., tri-stated) with the circuitry of the system. The prior emulator is connected in parallel with the component to be emulated (i.e., in piggyback style). In this case, the emulation is performed without physically removing the component from the system. This approach is referred to as on-circuit emulation.
In order to electrically disconnect the component to be emulated with the circuitry of the system, the prior component is equipped with an on-circuit emulation ("ONCE") mode in which all circuitry of the component is electrically disconnected with the external circuitry. A dedicated ONCE mode pin can be provided on the component to receive an ONCE mode control signal in order to allow the device to enter the ONCE mode.
One disadvantage of this arrangement is that the dedicated pin to the component typically and undesirably increases the package size and the total number of the pins of the component. One prior approach to solving this problem is to trigger the ONCE mode of the component through other existing pin or pins of the component. In this situation, the dedicated ONCE mode pin can be deleted.
FIG. 1 illustrates the prior art arrangement to place a microcontroller 10 into the ONCE mode with a multi-function pin TXD. The TXD pin is an output pin of microcontroller 10 during the normal operation. In FIG. 1, microcontroller 10 and emulator 20 are connected in parallel to system circuitry 11. Emulator 20 therefore has its TXD pin piggyback connected with the TXD pin of microcontroller 10. A reset circuitry 21 provides an active low reset signal RESET to a RESET pin of microcontroller 10 and a RESET pin of emulator 20 via line 30. Therefore, microprocessor 10 and emulator 20 can be reset by the RESET signal simultaneously. The RESET signal is also applied to a FORCEONCE input pin of emulator 20 via an inverter 25, an AND gate 22, and a delay circuit 23. When the FORCEONCE pin sees a logical low signal, it causes emulator 20 to apply a logical low ONCE mode control signal to the TXD pin of microcontroller 10 via its respective TXD pin. Upon receiving the logical low ONCE mode control signal at its TXD pin and being just out of the reset state, microcontroller 10 enters the ONCE mode in which all circuitry of microcontroller 10 is tri-stated. The logical low ONCE mode control signal needs to be maintained at the TXD pin of microcontroller 10 when microcontroller 10 is leaving the reset state. This is because the TXD pin of microcontroller 10 is not a dedicated ONCE mode pin and will have to be used for other functions during the normal operation of microcontroller 10. In the prior arrangement as shown in FIG. 1, delay circuit 23 provides the logical low signal to the FORCEONCE pin of emulator 20 when microcontroller 10 is exiting the reset state (i.e., at the rising edge of the RESET signal). The delay circuit 23 provides a predetermined delay to the RESET signal applied to the FORCEONCE pin of emulator 20. In this way, the FORCEONCE pin of emulator 20 can still be applied with a logical low signal at the rising edge of the RESET signal, which causes microcontroller 10 to enter the ONCE mode.
Once disadvantage of such prior arrangement is that the prior arrangement typically cannot reliably place microcontroller 10 into the ONCE mode when the RESET signal rises relatively slowly. This is due to the fact that microcontroller 10 has a different switching threshold voltage than that of inverter 25. FIG. 2 illustrates the different switching threshold voltages of microcontroller 10 and inverter 25.
In FIG. 2, curve 35 represents the RESET signal and curve 36 represents the ONCE mode control signal applied at the TXD pin of microcontroller 10. Voltage V.sub.1T is the switching threshold voltage of inverter 25 and voltage V.sub.2T is the switching threshold voltage of microcontroller 10. When the RESET signal rises relatively slowly due to relatively large capacitance in reset circuitry 21, microcontroller 10 senses a logical high RESET signal at timing t.sub.2 while inverter 25 sense a logical high RESET signal at timing t.sub.0. After the predetermined delay by delay circuit 23 which ends at timing t.sub.1, the logical high RESET signal sensed by inverter 25 is applied to the FORCEONCE pin of emulator 20 which then causes the ONCE mode control signal applied at the TXD pin of microcontroller 10 to go high. However, because of the relatively slow rising, timing t.sub.2 at which microcontroller 10 senses the logical high comes after timing t.sub.1 at which the ONCE mode control signal at the TXD pin of microcontroller 10 goes to logical high state. In this case, microcontroller 10 cannot be placed in the ONCE mode. This failure of microcontroller 10 to be placed in the ONCE mode results in signal contention between microcontroller 10 and emulator 20, which may result in damages to one or both.